package com.skyhigh.web.webservice.domain;

// Generated 26/03/2012 11:56:15 PM by Hibernate Tools 3.4.0.CR1

import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.TableGenerator;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import org.hibernate.annotations.Proxy;

/**
 * Contenedor generated by hbm2java
 */
@Entity
@Table(name = "contenedor", catalog = "proyecto_metodologia")
@TableGenerator(name="generatorName", 
table="secuencia",  
pkColumnName="codigo",  
pkColumnValue = "Contenedor.id",
valueColumnName="valor",  
allocationSize=100)
@Proxy( lazy=false )
public class Contenedor implements java.io.Serializable {

	private int idContenedor;
	private Documento documento;
	private Pais paisByIdPaisDestino;
	private Transportista transportista;
	private Patio patio;
	private TipoMovimiento tipoMovimiento;
	private Pais paisByIdPaisProcedencia;
	private Cliente cliente;
	private Date fechaIngreso;
	private Date fechaSalida;
	private double peso;

	public Contenedor() {
	}

	public Contenedor(int idContenedor, Documento documento,
			Pais paisByIdPaisDestino, Transportista transportista, Patio patio,
			TipoMovimiento tipoMovimiento, Pais paisByIdPaisProcedencia,
			Cliente cliente, Date fechaIngreso, double peso) {
		this.idContenedor = idContenedor;
		this.documento = documento;
		this.paisByIdPaisDestino = paisByIdPaisDestino;
		this.transportista = transportista;
		this.patio = patio;
		this.tipoMovimiento = tipoMovimiento;
		this.paisByIdPaisProcedencia = paisByIdPaisProcedencia;
		this.cliente = cliente;
		this.fechaIngreso = fechaIngreso;
		this.peso = peso;
	}

	public Contenedor(int idContenedor, Documento documento,
			Pais paisByIdPaisDestino, Transportista transportista, Patio patio,
			TipoMovimiento tipoMovimiento, Pais paisByIdPaisProcedencia,
			Cliente cliente, Date fechaIngreso, Date fechaSalida, double peso) {
		this.idContenedor = idContenedor;
		this.documento = documento;
		this.paisByIdPaisDestino = paisByIdPaisDestino;
		this.transportista = transportista;
		this.patio = patio;
		this.tipoMovimiento = tipoMovimiento;
		this.paisByIdPaisProcedencia = paisByIdPaisProcedencia;
		this.cliente = cliente;
		this.fechaIngreso = fechaIngreso;
		this.fechaSalida = fechaSalida;
		this.peso = peso;
	}

	@Id
	@Column(name = "idContenedor", unique = true, nullable = false)
	@GeneratedValue(strategy=GenerationType.TABLE, generator="generatorName")
	public int getIdContenedor() {
		return this.idContenedor;
	}

	public void setIdContenedor(int idContenedor) {
		this.idContenedor = idContenedor;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idDocumento", nullable = false)
	public Documento getDocumento() {
		return this.documento;
	}

	public void setDocumento(Documento documento) {
		this.documento = documento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPaisDestino", nullable = false)
	public Pais getPaisByIdPaisDestino() {
		return this.paisByIdPaisDestino;
	}

	public void setPaisByIdPaisDestino(Pais paisByIdPaisDestino) {
		this.paisByIdPaisDestino = paisByIdPaisDestino;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idTransportista", nullable = false)
	public Transportista getTransportista() {
		return this.transportista;
	}

	public void setTransportista(Transportista transportista) {
		this.transportista = transportista;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPatio", nullable = false)
	public Patio getPatio() {
		return this.patio;
	}

	public void setPatio(Patio patio) {
		this.patio = patio;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idTipoMovimiento", nullable = false)
	public TipoMovimiento getTipoMovimiento() {
		return this.tipoMovimiento;
	}

	public void setTipoMovimiento(TipoMovimiento tipoMovimiento) {
		this.tipoMovimiento = tipoMovimiento;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "idPaisProcedencia", nullable = false)
	public Pais getPaisByIdPaisProcedencia() {
		return this.paisByIdPaisProcedencia;
	}

	public void setPaisByIdPaisProcedencia(Pais paisByIdPaisProcedencia) {
		this.paisByIdPaisProcedencia = paisByIdPaisProcedencia;
	}

	@ManyToOne(fetch = FetchType.LAZY )
	@JoinColumn(name = "idCliente", nullable = false)
	public Cliente getCliente() {
		return this.cliente;
	}

	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fechaIngreso", nullable = false, length = 19)
	public Date getFechaIngreso() {
		return this.fechaIngreso;
	}

	public void setFechaIngreso(Date fechaIngreso) {
		this.fechaIngreso = fechaIngreso;
	}

	@Temporal(TemporalType.TIMESTAMP)
	@Column(name = "fechaSalida", length = 19)
	public Date getFechaSalida() {
		return this.fechaSalida;
	}

	public void setFechaSalida(Date fechaSalida) {
		this.fechaSalida = fechaSalida;
	}

	@Column(name = "peso", nullable = false, precision = 22, scale = 0)
	public double getPeso() {
		return this.peso;
	}

	public void setPeso(double peso) {
		this.peso = peso;
	}

}
